Many modern computer architectures include load and store machine code instructions for memory access. Hardware is frequently used to accelerate the performance of these load and store operations. One class of hardware used to increase performance is a data cache or cache memory. Many different types of data, however, may be stored in a cache which makes distinguishing between data types difficult. To more easily identify data of a particular type, a computing system may assign each cache line in the cache to a particular data page type (i.e., a page color).
Some tasks, such as coherence operations or invalidations, require the computing device to search the data cache in order to identify the cache lines assigned to a specific page color. For example, the device may search each set of the data cache as well as each of the ways within the sets. By searching a cache tag for the page color, the computing system may be able to quickly identify the specific type of data—e.g., a data packet, stack data, scratch data, and the like—stored in the cache line. Searching through the individual sets and ways within the data cache, however, is a time consuming task which may decrease the performance of the computing device.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.